/**
 * 时间格式化
 * @param {*} s
 */
const format = (s) => {
  const minute = parseInt(s / 60 % 60)
  const hour = parseInt(s / 3600) < 10 ? '0' + parseInt(s / 3600) : parseInt(s / 3600)
  const second = Math.ceil(s % 60)  > 59 ? 59 : Math.ceil(s % 60) 
  return `${hour > 0 ? `${hour}:` : ''}${minute < 10 ? '0' + minute : minute}:${second < 10 ? '0' + second : second}`
}
/**
 * 判断其 MIME 格式能否被客户端录制
 **/
const isSupportedRecord = () => {
  const mimeType = 'video/webm;codecs=vp8'
  return MediaRecorder.isTypeSupported(mimeType)
}
/**
 * 手动实现toFixed功能
 * @param value 值
 * @param n 保留几位小数
 */
const autoFixed = (value, n) => {
  return Math.round(value * Math.pow(10, n)) / Math.pow(10, n);
}

/**
 * 判断当前数据类型
 * @param {*} obj 
 * @returns 
 */
const getDataType = (obj) => {
  const str = Object.prototype.toString.call(obj); // 检测基本类型值，引用类型值的类型
  const map = {
    '[object Boolean]': 'boolean',
    '[object Number]': 'number',
    '[object String]': 'string',
    '[object Function]': 'function',
    '[object Array]': 'array',
    '[object Date]': 'date',
    '[object RegExp]': 'regExp',
    '[object Undefined]': 'undefined',
    '[object Null]': 'null',
    '[object Object]': 'object'
  };
  if(obj instanceof Element){
    return 'element';
  }
  return map[str];
}

export {
  format,
  isSupportedRecord,
  autoFixed,
  getDataType
}